package logica_de_presentacion;

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyVetoException;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

import comun.Usuario;
import logica_de_negocio.FaltanDatosEnLaBaseDeDatos;
import logica_de_negocio.gestorValoracionCapitulo;
import logica_de_negocio.gestorValoracionPelicula;

public class FormularioCapitulos_Peliculas extends JInternalFrame implements
		ActionListener {

	private static final long serialVersionUID = 1L;
	private JButton jbCapitulo, jbPeliculas;
	private MenuInicial clasePadre;
	private Usuario usuarioSel;

	/**
	 * Ventana de elecion de Capitulo o Pelicula
	 */

	public FormularioCapitulos_Peliculas(MenuInicial clasePadre,
			Usuario usuarioSel) {

		super("Elegir Capitulo o Pelicula", true, true, true, true);

		this.clasePadre = clasePadre;
		this.usuarioSel = usuarioSel;
		this.setVisible(true);
		this.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);

		JLabel jlabel = new JLabel("Indique de que desea ver las valoraciones");
		this.getContentPane().add(jlabel, "North");

		JPanel jpBotones = new JPanel();
		this.getContentPane().setLayout(new FlowLayout());// TIPO DE ORDENACION

		jbCapitulo = new JButton("Capitulo");
		jbCapitulo.addActionListener(this);
		jpBotones.add(jbCapitulo);

		gestorValoracionCapitulo gvc = new gestorValoracionCapitulo();
		boolean bolValCap = gvc.isId_u(usuarioSel.getId_u());
		if (bolValCap == false) {
			jbCapitulo.setEnabled(false);
		}
		jpBotones.add(jbCapitulo);

		jbPeliculas = new JButton("Pelicula");
		jbPeliculas.addActionListener(this);
		jpBotones.add(jbPeliculas);

		gestorValoracionPelicula gvp = new gestorValoracionPelicula();
		boolean bolValPel = gvp.isId_u(usuarioSel.getId_u());
		if (bolValPel == false) {
			jbPeliculas.setEnabled(false);
		}
		jpBotones.add(jbPeliculas);

		if (bolValCap == false) {
			if (bolValPel == false) {
				JOptionPane.showMessageDialog(new Frame(),
						"No ha valorado ninguna pelicula o Capitulo");
				this.dispose();
			}
		}

		// ANADIMOS AL PANEL PRINCIPAL
		this.getContentPane().add(jpBotones, "Center");

		// TAMANO JUSTO
		this.pack();

	}

	@Override
	public void actionPerformed(ActionEvent e) {

		JButton botonPulsa = (JButton) e.getSource();

		if (botonPulsa == jbCapitulo) {

			internalLCUsus formularioListarCapituloPorUsuario = new internalLCUsus(
					usuarioSel);

			try {
				formularioListarCapituloPorUsuario.cargarCapitulos();
				clasePadre.add(formularioListarCapituloPorUsuario);
				formularioListarCapituloPorUsuario.setSelected(true);
				formularioListarCapituloPorUsuario.toFront();
			} catch (PropertyVetoException e1) {
			} catch (ClassNotFoundException e1) {
				JOptionPane.showMessageDialog(new Frame(),
						"No hay informacion en la base de datos");
				this.dispose();
			}

			this.dispose();
		} else {
			try {
				internalLPUsus formularioListarPeliculaPorUsuario = new internalLPUsus(
						usuarioSel);
				formularioListarPeliculaPorUsuario.cargarPeliculas();
				clasePadre.add(formularioListarPeliculaPorUsuario);
				try {
					formularioListarPeliculaPorUsuario.setSelected(true);
				} catch (PropertyVetoException e1) {
				}
				formularioListarPeliculaPorUsuario.toFront();
				this.dispose();

			} catch (FaltanDatosEnLaBaseDeDatos e1) {
				JOptionPane.showMessageDialog(new Frame(), e1.getFalta());
			} catch (ClassNotFoundException e2) {
				JOptionPane.showMessageDialog(new Frame(),
						"No hay informacion en la base de datos");
				this.dispose();
			}
		}
	}

	protected static ImageIcon createImageIcon(String path) {
		java.net.URL imgURL = Button.class.getResource(path);
		if (imgURL != null) {
			return new ImageIcon(imgURL);
		} else {
			System.err.println("Couldn't find file: " + path);
			return null;
		}
	}
}
